Virtual Desktop Infrastructure (VDI) refers to a system of providing complete centrally-managed desktops to users using computer virtualization technology. VDI is used to create a large number of independent computing environments for a large number of users. In a typical VDI architecture, user displays and input devices are local, but applications execute remotely in a server. Understanding and accurately quantifying the time it takes for the desktop to be available after a power-on, reboot, or login of the desktop (i.e., the desktop readiness) is important in many VDI management operations, such as boot-storm and login-storm operations for desktops. In such operations, the desktops cause a relatively heavy load on the underlying infrastructure platform. The performance of the desktops can also vary depending on how the platform is responding to the demands of the VDI management operations. As such, a determination of how the desktops are responding quantitatively and a determination of the distribution of the ready time for the desktops can help characterize and tune the hardware platform.
Several approaches may be used to measure or identify when a desktop is active or ready for use. In one approach, a Microsoft Windows® service may start running when a desktop is powered-on (Windows is a registered trademark of Microsoft Corporation of Redmond, Wash.). The service is then externally monitored to determine whether the desktop is active. However, this approach may not provide an accurate readiness time for the desktop. For example, even though the particular service may have started, the desktop may still not be usable for the end-user because a user profile, other settings, and/or applications are loading. In other approaches, event-based notification programs are used to provide a signal when the desktop is active or ready for use. However, because such programs are configured to execute immediately upon the desktop being powered-on, the responsive time of the desktop may not be accurately captured. Since the determined readiness time may be inaccurate, a performance feedback loop that is based on the readiness time may be incorrect as well. As a result, the desktop performance may not be optimal. Accordingly, there is a need for an automated system and method for accurately determining desktop readiness using interactive measures.